안녕하세요 에듀이노 개발팀입니다.
기본적으로 아두이노 우노보드에 외부전원공급 시, 워터펌프에 따로 전원공급을 해야 모터의 세기가 강해지며,
모터드라이버 등을 이용해 모터를 연결한 다음, 모터드라이버에 전원공급을 해주면, 해결될 것으로 보입니다.
감사합니다.
[ Original Message ]
워터펌프를 아두이노랑 연결했는데 워터펌프의 출력이 너무 약합니다.
현재 빗물수위센서와 토양수분센서(두개 다 에듀이노 제품이에요) 같이 연결되어 있고 건전지 AA 1.5V 병렬로 4개도 연결되어있는데도
워터펌프의 힘이 너무 약해서 물이 호스를 타고 올라오지를 못하네요ㅠㅠ
혹시 워터펌프에 문제가 있는 건지, 모터를 달면 조금 나아질 지
무엇이 문제인지 알려주실 수 있으실까요?ㅠㅠ
아래는 해당 코딩입니다.
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int Sensor_pin = A0; // 토양수분센서 핀을 A0으로 설정
int Water_Pump = 7; // 워터펌프 핀을 7으로 설정
int buzzerPin = 4; //수동부저 핀4설정
int water_pin = A3; //수위센서 A3에 연결
int soil_result;
int water_result;
void setup()
{
// set up the LCD's number of columns and rows:
lcd.init(); // Print a message to the LCD.
// lcd.backlight();
lcd.clear();
Serial.begin(9600);
pinMode(Water_Pump, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(Sensor_pin, INPUT);
pinMode(water_pin, INPUT);
}
void loop()
{
Serial.println(analogRead(water_pin)); // Serial monitor로 A1값을 보여줌
delay(1000); // 입력값을 보여주는데 0.1초 설정
soil_result = analogRead(Sensor_pin);
water_result = analogRead(water_pin);
Serial.println(soil_result);// 센서값을 시리얼모니터로 전송
delay(1000);
if ( soil_result > 450 && water_result > 400)
{
digitalWrite(Water_Pump, HIGH);
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("Water, please"); // 'Water,please' 문구 출력
//analogWrite(buzzerPin, 5);
tone(buzzerPin,440);//라
delay(220);
tone(buzzerPin,293);//레
delay(220);
tone(buzzerPin,349);//파
delay(150);
tone(buzzerPin,391);//솔
delay(220);
tone(buzzerPin,440);//라
delay(400);
noTone(buzzerPin);
delay(350);
tone(buzzerPin,293);//레
delay(220);
tone(buzzerPin,349);//파
delay(150);
tone(buzzerPin,523);//도
delay(220);
tone(buzzerPin,440);//라
delay(400);
noTone(buzzerPin);
delay(300);
}
else if( soil_result > 440 && water_result < 390) //화분, 물통 물 없으면
{
tone(buzzerPin,293);//레
delay(300);
digitalWrite(Water_Pump, LOW);
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("PLEASE POUR");
lcd.setCursor(5,1);
lcd.print("WATER !!");
}
else if( soil_result < 440) // 화분에 물충분
{
// 토양에 수분이 충분하면
lcd.clear();
digitalWrite(Water_Pump, LOW);
noTone(buzzerPin);
lcd.noBacklight();
lcd.noDisplay();
}
}